#ifndef RTC_H
#define RTC_H

#include <stm32f4xx.h>

extern volatile uint32_t g_rtc_wakeup_event;  // 用于rtc定时器确认可以获取日期时间

/**
 @brief 初始化RTC
*/
void rtc_init(void);


/**
 @brief  设置日期
 @param  year:    按照10进制方式16进制格式输入年份
 @param  mouth:   按照10进制方式16进制格式输入月份
 @param  date:    按照10进制方式16进制格式输入日份
 @param  weekday: 按照10进制方式16进制格式输入星期
 @refer  设置2022年2月22日星期一 rtc_set_date(0x2022, 0x2, 0x22, 0x1);
*/
void rtc_set_date(uint8_t year, uint8_t month, uint8_t date, uint8_t weekday);


/**
 @brief 设置时间
 @param hours:   按照10进制方式16进制格式输入小时
 @param minutes: 按照10进制方式16进制格式输入分钟
 @param seconds: 按照10进制方式16进制格式输入秒
 @refer 设置16:30:00 rtc_set_time(0x16, 0x30, 0x00);
*/
void rtc_set_time(uint8_t hours, uint8_t minutes, uint8_t seconds);


/**
 @brief RTC定时器
*/
void RTC_WKUP_IRQHandler(void);


/**
 @brief 十进制转十六进制,22->0x22
 @param num: 十进制数
 @retval num十六进制形式
*/
uint32_t int_to_hex(uint32_t num);




#endif  // RTC_H
